package com.apanal.qlife.sys.service;

import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.apanal.qlife.sys.model.File;

/**
 * 文件服务层接口
 * 
 * @author shuliangxing
 * 
 * @date 2015-1-14上午11:33:49
 */
public interface FileService {

	/**
	 * 根据id删除
	 * 
	 * @param id
	 * @return
	 */
	int deleteById(Long id);

	/**
	 * 新增
	 * 
	 * @param record
	 * @return
	 */
	int insert(File record);

	/**
	 * 非空字段新增
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(File record);

	/**
	 * 根据id查询
	 * 
	 * @param id
	 * @return
	 */
	File selectById(Long id);

	/**
	 * 根据id更新非空字段
	 * 
	 * @param record
	 * @return
	 */
	int updateByIdSelective(File record);

	/**
	 * 根据id更新
	 * 
	 * @param record
	 * @return
	 */
	int updateById(File record);

	// 分割线

	/**
	 * 根据id删除
	 * 
	 * @param id
	 * @return
	 */
	int deleteSoft(Long id);

	/**
	 * 上传文件
	 * 
	 * @param request
	 * @param filType
	 *            文件类型
	 * @param filTypeName
	 *            文件类型名称
	 * @param typePath
	 *            文件类型路径
	 * @return @
	 */
	List<File> uploadFile(HttpServletRequest request, String filType,
			String filTypeName, String typePath) throws IOException;

	/**
	 * 根据文件类型和外键id查询文件集合
	 * 
	 * @param filType
	 *            文件类型
	 * @param foreignId
	 *            外键id
	 * @return
	 */
	List<File> select(String filType, Long foreignId);

	/**
	 * 根据文件对应外键id删除
	 * 
	 * @param foreignId
	 * @return
	 */
	String deleteByForeignId(Long foreignId);

	/**
	 * 批量新增
	 * 
	 * @param list
	 * @return
	 */
	int inserts(List<File> list);

}
